home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / include / tar.h < prev    next >
C/C++ Source or Header  |  2009-10-07  |  4KB  |  109 lines

  1. /* Extended tar format from POSIX.1.
  2.    Copyright (C) 1992, 1996 Free Software Foundation, Inc.
  3.    This file is part of the GNU C Library.
  4.    Written by David J. MacKenzie.
  5.  
  6.    The GNU C Library is free software; you can redistribute it and/or
  7.    modify it under the terms of the GNU Lesser General Public
  8.    License as published by the Free Software Foundation; either
  9.    version 2.1 of the License, or (at your option) any later version.
  10.  
  11.    The GNU C Library is distributed in the hope that it will be useful,
  12.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  13.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  14.    Lesser General Public License for more details.
  15.  
  16.    You should have received a copy of the GNU Lesser General Public
  17.    License along with the GNU C Library; if not, write to the Free
  18.    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  19.    02111-1307 USA.  */
  20.  
  21. #ifndef    _TAR_H
  22. #define    _TAR_H    1
  23.  
  24. /* A tar archive consists of 512-byte blocks.
  25.    Each file in the archive has a header block followed by 0+ data blocks.
  26.    Two blocks of NUL bytes indicate the end of the archive.  */
  27.  
  28. /* The fields of header blocks:
  29.    All strings are stored as ISO 646 (approximately ASCII) strings.
  30.  
  31.    Fields are numeric unless otherwise noted below; numbers are ISO 646
  32.    representations of octal numbers, with leading zeros as needed.
  33.  
  34.    linkname is only valid when typeflag==LNKTYPE.  It doesn't use prefix;
  35.    files that are links to pathnames >100 chars long can not be stored
  36.    in a tar archive.
  37.  
  38.    If typeflag=={LNKTYPE,SYMTYPE,DIRTYPE} then size must be 0.
  39.  
  40.    devmajor and devminor are only valid for typeflag=={BLKTYPE,CHRTYPE}.
  41.  
  42.    chksum contains the sum of all 512 bytes in the header block,
  43.    treating each byte as an 8-bit unsigned value and treating the
  44.    8 bytes of chksum as blank characters.
  45.  
  46.    uname and gname are used in preference to uid and gid, if those
  47.    names exist locally.
  48.  
  49.    Field Name    Byte Offset    Length in Bytes    Field Type
  50.    name        0        100        NUL-terminated if NUL fits
  51.    mode        100        8
  52.    uid        108        8
  53.    gid        116        8
  54.    size        124        12
  55.    mtime    136        12
  56.    chksum    148        8
  57.    typeflag    156        1        see below
  58.    linkname    157        100        NUL-terminated if NUL fits
  59.    magic    257        6        must be TMAGIC (NUL term.)
  60.    version    263        2        must be TVERSION
  61.    uname    265        32        NUL-terminated
  62.    gname    297        32        NUL-terminated
  63.    devmajor    329        8
  64.    devminor    337        8
  65.    prefix    345        155        NUL-terminated if NUL fits
  66.  
  67.    If the first character of prefix is '\0', the file name is name;
  68.    otherwise, it is prefix/name.  Files whose pathnames don't fit in that
  69.    length can not be stored in a tar archive.  */
  70.  
  71. /* The bits in mode: */
  72. #define TSUID    04000
  73. #define TSGID    02000
  74. #define TSVTX    01000
  75. #define TUREAD    00400
  76. #define TUWRITE    00200
  77. #define TUEXEC    00100
  78. #define TGREAD    00040
  79. #define TGWRITE    00020
  80. #define TGEXEC    00010
  81. #define TOREAD    00004
  82. #define TOWRITE    00002
  83. #define TOEXEC    00001
  84.  
  85. /* The values for typeflag:
  86.    Values 'A'-'Z' are reserved for custom implementations.
  87.    All other values are reserved for future POSIX.1 revisions.  */
  88.  
  89. #define REGTYPE        '0'    /* Regular file (preferred code).  */
  90. #define AREGTYPE    '\0'    /* Regular file (alternate code).  */
  91. #define LNKTYPE        '1'    /* Hard link.  */
  92. #define SYMTYPE        '2'    /* Symbolic link (hard if not supported).  */
  93. #define CHRTYPE        '3'    /* Character special.  */
  94. #define BLKTYPE        '4'    /* Block special.  */
  95. #define DIRTYPE        '5'    /* Directory.  */
  96. #define FIFOTYPE    '6'    /* Named pipe.  */
  97. #define CONTTYPE    '7'    /* Contiguous file */
  98.  /* (regular file if not supported).  */
  99.  
  100. /* Contents of magic field and its length.  */
  101. #define TMAGIC    "ustar"
  102. #define TMAGLEN    6
  103.  
  104. /* Contents of the version field and its length.  */
  105. #define TVERSION    "00"
  106. #define TVERSLEN    2
  107.  
  108. #endif /* tar.h */
  109.